#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef struct BinaryTreeNode* QDataType;

typedef struct QueueNode
{
	struct QueueNode* next;
	QDataType data;
}QNode;


typedef struct Queue
{
	QNode* head;
	QNode* tail;
	int size;
}Que;

void InitQue(Que* p);

void DestroyQue(Que* p);

void PushQue(Que* p, QDataType x);

void PopQue(Que* p);

int QueSize(Que* p);

bool QueEmpty(Que* p);

QDataType QueFront(Que* p);

QDataType QueBack(Que* p);
